package com.woniu.his.bms.client;

import com.woniu.his.bms.client.param.QueryOperatorSettleRecordByTimeAndStaffIdParam;
import com.woniu.his.bms.client.param.VerifyForSettleRecordParam;
import com.woniu.his.bms.client.result.OperatorSettleRecordResult;
import com.woniu.his.result.Result;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@FeignClient(contextId="BmsOperatorSettleRecordClient",name="bms",path="bms")
public interface BmsOperatorSettleRecordClient {

    /**
     * 日结
     *
     * @param staffId 员工id
     * @return {@link Result}
     */
    @GetMapping("/operatorSettleRecordByTimeAndStaff")
    public Result operatorSettleRecordByTimeAndStaff(@RequestParam("staffId") Long staffId);

    /**
     * 查询日结记录通过ID
     * @param id id
     * @return {@link Result}<{@link OperatorSettleRecordResult}>
     */
    @GetMapping("/queryOperatorSettleRecordById")
    public Result<OperatorSettleRecordResult> queryOperatorSettleRecordById(@RequestParam("id") Long id);

    /**
     * 对账
     *
     * @param param 参数
     * @return {@link Result}
     */
    @PostMapping("/verifyForSettleRecord")
    public Result verifyForSettleRecord(@RequestBody VerifyForSettleRecordParam param);

    /**
     * 查日结信息  通过收费员和时间范围
     *
     * @param param 参数
     * @return {@link Result}<{@link List}<{@link OperatorSettleRecordResult}>>
     */
    @PostMapping("/queryOperatorSettleRecordByTimeAndStaffId")
    public Result<List<OperatorSettleRecordResult>> queryOperatorSettleRecordByTimeAndStaffId(@RequestBody QueryOperatorSettleRecordByTimeAndStaffIdParam param);

}
